home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
tools
/
czesc_4
/
sregexp
/
sregexp.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-08-05
|
2KB
|
66 lines
/* This is used for COMPILING sregexp.library, it should not be included
if you just USE the library. See sregexpbase.h */
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <clib/exec_protos.h>
#include <clib/dos_protos.h>
#include <libraries/dosextens.h>
#include "sregexpbase.h"
#define TRUE 1
#define FALSE 0
#define MEM_ERROR ERROR_NO_FREE_STORE /* report no mem */
#define ILLEGAL_ERR ERROR_INVALID_COMPONENT_NAME /* bad sregexp */
/* some handy fingersaving macros. */
#define realen(a) (((a)->sre_Flag&(SRF_REPEAT|SRF_NOT))?0:(a)->sre_MinLen)
#define isfixed(s) (((s)->sre_Flag&(SRF_REPEAT|SRF_NOT|SRF_FIXLEN))==SRF_FIXLEN)
#define matchset(s,c) ((s)->sre_Data.setchar[(c)/8] & 1 << (c)%8)
#ifdef __MEMCHECK__
#define getmem(a) checkmem(a,__BASE_FILE__,__LINE__)
#define freemem(p,s) freecheck(p,s,__BASE_FILE__,__LINE__)
extern void *checkmem(int, char *, int);
extern void freecheck(void *, int, char *, int);
#else
#define getmem(a) AllocMem(a,0)
#define freemem(p,s) FreeMem(p,s)
#endif
static struct SregExp * parsesub(char **, char);
static struct SregExp * makesum(struct SregList *, int);
static struct SregExp * makeor(struct SregList *, int);
static struct SregExp * parseone(char **, char);
static char onechar(char **, char);
static struct SregExp * makenull(void);
static char * makeset(char **);
static int matchsum(struct SregExp *[], int, char *, int, int);
static void report(int);
static struct SpathNode * makespathnode(BPTR, char *, struct SregList *);
static void freespathnode(struct SpathNode *);
static struct SregList * parsepath(char *);
extern struct SregExp * parsesregexp(char *);
extern void freesregexp(struct SregExp *);
extern int matchsregexp(char *, struct SregExp *, int);
extern int matchnsregexp(char *, struct SregExp *, int, int);
extern int iswild(char *);
extern struct SpathInfo * anchorpath(char *, char *);
extern int nextfile(struct SpathInfo *, char *, int, int);
extern int buildpath(struct SpathInfo *, char *, int);
extern void freespathinfo(struct SpathInfo *);